Hal 1 / 26
Halaman i
SEMESTER 2 · FULL-STACK ECOSYSTEM

BAGIAN 10

SUPABASE MODERN BACKEND

Backend-as-a-Service untuk Startup Modern

Auth
DB
Storage
Realtime
SQL
API

Modul Interaktif · Kelas 10 Semester 2 · SMK/SMA IT

Halaman 1
BAB 10 · BAGIAN 1

Apa Itu Supabase?

🎯 Tujuan Pembelajaran: Setelah mempelajari bagian ini, siswa mampu menjelaskan pengertian Supabase dan menyebutkan 3 komponen utama di dalamnya tanpa melihat catatan.

Supabase adalah platform Backend-as-a-Service (BaaS) yang bersifat open source. Artinya, Supabase menyediakan semua kebutuhan backend yang biasanya harus kamu bangun sendiri — seperti database, sistem login, penyimpanan file, dan koneksi realtime — dalam satu paket yang sudah siap pakai.

Kenapa disebut "Backend-as-a-Service"? Karena Supabase menyediakan layanan backend sebagai service — kamu tinggal pakai tanpa perlu mengelola server, instalasi database, atau konfigurasi jaringan. Semuanya sudah diurus oleh Supabase.

Empat komponen utama Supabase adalah: PostgreSQL Database untuk menyimpan data, Authentication untuk login pengguna, Storage untuk menyimpan file, dan Realtime untuk sinkronisasi data secara langsung.

🏠 ANALOGI: Apartemen Fully-Furnished

Database, Auth, Storage, Realtime siap pakai
#BackendAsAService #OpenSource #PostgreSQL #Realtime
Halaman 2
BAB 10 · BAGIAN 2

Firebase vs Supabase

🎯 Tujuan: Siswa mampu membedakan antara Firebase dan Supabase serta menyebutkan 3 keunggulan Supabase.

Sebelum Supabase populer, banyak developer menggunakan Firebase — produk BaaS dari Google. Namun, Firebase memiliki beberapa kelemahan: database NoSQL yang kurang fleksibel untuk data kompleks, sifat closed source yang membuat kode tidak bisa diaudit publik, serta biaya yang membengkak seiring pertumbuhan data. Inilah mengapa Supabase hadir sebagai alternatif modern dengan pendekatan yang lebih terbuka dan fleksibel.

🔥

Firebase

  • ✗ Closed Source — kode tidak bisa diaudit publik
  • ✗ NoSQL — risiko data inkonsisten
  • ✗ Vendor lock-in — susah migrasi
  • ✗ Biaya membengkak di skala besar

🚀

Supabase

  • ✓ Open Source — transparan dan gratis
  • ✓ PostgreSQL — SQL relasional, kuat
  • ✓ Portable — bisa deploy sendiri kapan saja
  • ✓ Gratis 2 proyek, scalable

💡 Intinya: Supabase unggul di open source, PostgreSQL, dan portability

Halaman 3
BAB 10 · BAGIAN 3

Arsitektur Supabase

🎯 Tujuan: Siswa mampu menggambarkan alur data dari Frontend ke Supabase API Gateway kemudian ke masing-masing layanan.

Arsitektur Supabase terdiri dari beberapa lapisan. Di bagian paling depan, ada API Gateway yang menjadi pintu masuk tunggal untuk semua permintaan dari aplikasi klien. Ketika aplikasi kamu melakukan request — misalnya login atau mengambil data — request tersebut masuk ke API Gateway terlebih dahulu. Gateway ini kemudian akan merutekan permintaan ke layanan yang tepat: Auth untuk login, Database untuk query data, Storage untuk file, dan Realtime untuk koneksi langsung.

Keempat layanan ini semuanya terhubung ke PostgreSQL sebagai database utama. Yang menarik, Supabase Realtime bekerja dengan cara mendengarkan perubahan di database PostgreSQL dan menyiarkannya ke semua klien yang terhubung — tanpa perlu polling manual.

Aplikasi (Frontend) API Gateway Auth Database Storage Realtime Post SQL

Gambar 10.1: Arsitektur Supabase — API Gateway sebagai pintu masuk utama

Halaman 4
BAB 10 · BAGIAN 4

Setup & Konfigurasi Awal

🎯 Tujuan: Siswa mampu melakukan setup akun Supabase dan menginisialisasi client di kode JavaScript.

Langkah pertama menggunakan Supabase adalah membuat akun di supabase.com. Kamu bisa mendaftar menggunakan email atau akun GitHub. Setelah login, kamu akan membuat proyek baru — beri nama proyekmu dan pilih region server terdekat. Proses pembuatan database memakan waktu sekitar 2-3 menit. Setelah selesai, kamu akan diberikan Project URL dan anon/public API Key — dua informasi penting yang akan kamu gunakan di kode aplikasi.

1️⃣

Buat Akun

supabase.com

2️⃣

New Project

Beri nama

3️⃣

API Keys

URL + Key

4️⃣

Mulai Coding!

npm install

supabase.js
// 1. Install package // npm install @supabase/supabase-js // 2. Import dan inisialisasi import { createClient } from '@supabase/supabase-js' const supabaseUrl = 'https://xyzproject.supabase.co' const supabaseKey = 'eyJhbGciOiJIUzI1NiIs...' const supabase = createClient(supabaseUrl, supabaseKey)
Halaman 5
BAB 10 · BAGIAN 5

PostgreSQL — Jantung Supabase

🎯 Tujuan: Siswa mampu menjelaskan konsep Table, Row, dan Column menggunakan analogi lemari arsip.

PostgreSQL adalah sistem database relasional yang sudah terbukti kehandalannya selama lebih dari 30 tahun. PostgreSQL menggunakan format tabel untuk menyimpan data — mirip dengan spreadsheet Excel tapi jauh lebih canggih dan aman. Supabase memilih PostgreSQL karena sifatnya yang open source, stabil, dan memiliki fitur yang sangat lengkap seperti foreign key, indexing, hingga full-text search.

🗂️ ANALOGI: Lemari Arsip Kantor

📁 TABLE: users 📁 TABLE: products 📁 TABLE: orders Table = Laci Row = Amplop Column = Label
TABLE (Laci)

Kumpulan data yang memiliki struktur sama. Contoh: tabel "users" berisi semua data pengguna.

ROW (Amplop)

Satu record/entri dalam tabel. Contoh: data diri satu orang pengguna.

COLUMN (Label)

Tipe/atribut data. Contoh: nama, email, umur — setiap kolom punya tipe data spesifik.

RELATIONSHIP

Hubungan antar tabel. Contoh: produk dimiliki oleh user (relasi one-to-many).

Halaman 6-7
BAB 10 · BAGIAN 6

SQL Editor & Query Dasar

🎯 Tujuan: Siswa mampu menulis query CREATE, INSERT, SELECT, UPDATE, dan DELETE.

SQL (Structured Query Language) adalah bahasa standar yang digunakan untuk berkomunikasi dengan database relasional. Melalui SQL, kamu bisa membuat tabel, menambah data, membaca data, mengubah data, dan menghapus data. Supabase menyediakan SQL Editor di dashboard-nya yang mirip dengan editor kode biasa — lengkap dengan syntax highlighting dan auto-complete. Berikut adalah lima query dasar yang wajib kamu kuasai:

query_dasar.sql
-- 1. CREATE TABLE — Membuat tabel baru CREATE TABLE users ( id BIGINT PRIMARY KEY GENERATED ALWAYS AS IDENTITY, name VARCHAR(100) NOT NULL, email VARCHAR(200) UNIQUE NOT NULL ); -- 2. INSERT — Menambahkan data baru INSERT INTO users (name, email) VALUES ('Rifqi', 'rifqi@mail.com'); -- 3. SELECT — Membaca data (dengan filter) SELECT name, email FROM users WHERE email = 'rifqi@mail.com'; -- 4. UPDATE — Mengubah data yang ada UPDATE users SET name = 'Rifqi Update' WHERE id = 1; -- 5. DELETE — Menghapus data DELETE FROM users WHERE id = 1;

💡 Ingat: DELETE bersifat permanen! Selalu gunakan WHERE untuk filter.

Halaman 8
BAB 10 · BAGIAN 6

CRUD — Empat Operasi Database

CRUD adalah singkatan dari Create, Read, Update, Delete — empat operasi dasar yang bisa dilakukan pada database manapun. Konsep ini sangat penting karena hampir semua fitur di aplikasi (daftar akun, lihat produk, edit profil, hapus komentar) adalah implementasi dari salah satu operasi CRUD. Memahami CRUD berarti kamu sudah mengerti 80% dari cara kerja backend aplikasi modern.

DATABASE PostgreSQL CREATE (INSERT) READ (SELECT) UPDATE DELETE

Gambar 10.2: Empat cabang operasi CRUD pada database

Halaman 9
BAB 10 · BAGIAN 7

Sistem Autentikasi Supabase

🎯 Tujuan: Siswa mampu membedakan 5 metode autentikasi dan kapan menggunakannya.

Autentikasi adalah proses memverifikasi identitas pengguna — memastikan bahwa pengguna adalah benar-benar dirinya sendiri. Supabase menyediakan 5 metode autentikasi yang bisa kamu pilih sesuai kebutuhan aplikasi. Mulai dari yang klasik (Email/Password) hingga yang modern (Magic Link dan OAuth). Semua metode ini menghasilkan JWT Token — semacam "tiket" digital yang membuktikan bahwa pengguna sudah login.

📧

Email

Password

📱

OTP

Kode sekali

🔗

Magic Link

Tanpa PW

🔵

Google

1 klik

GitHub

Developer

🏠 Analogi: Lima pintu masuk berbeda menuju rumah (aplikasi) yang sama

Halaman 10
BAB 10 · BAGIAN 7

Autentikasi Email & OTP

OTP (One-Time Password) adalah kode unik yang dikirim ke email atau nomor telepon pengguna dan hanya bisa digunakan satu kali. Metode ini sangat aman karena kode bersifat sementara (biasanya kedaluwarsa dalam 5-10 menit) dan hanya bisa dipakai sekali. Alur kerjanya: user memasukkan email → Supabase mengirim kode OTP → user memasukkan kode → Supabase memverifikasi → mengeluarkan JWT token. Di sisi developer, implementasinya sangat sederhana — cukup dua panggilan fungsi.

User Kirim OTP ke Email Input Kode OTP JWT Token ✅ Login!
auth_otp.js
// Langkah 1: Kirim OTP ke email const { error } = await supabase.auth .signInWithOtp({ email: 'user@mail.com' }) // Langkah 2: Verifikasi kode OTP const { data, error } = await supabase.auth .verifyOtp({ email: 'user@mail.com', token: '123456', type: 'email' })
Halaman 11
BAB 10 · BAGIAN 7

Magic Link & OAuth

Selain OTP, Supabase juga mendukung Magic Link dan OAuth. Magic Link bekerja dengan mengirimkan link khusus ke email pengguna — ketika link itu diklik, pengguna langsung login secara otomatis tanpa perlu memasukkan kode apapun. Sementara OAuth memungkinkan pengguna login menggunakan akun yang sudah mereka miliki — seperti Google atau GitHub — sehingga mereka tidak perlu membuat akun baru. Kedua metode ini meningkatkan User Experience (UX) karena meminimalkan gesekan saat login.

🔗 Magic Link

  • ✓ Link unik dikirim ke email
  • ✓ Klik → login otomatis
  • ✓ Tanpa perlu password/kode
  • ✓ Ideal untuk aplikasi SaaS

🔓 OAuth (Google/GitHub)

  • ✓ Login dengan akun Google
  • ✓ Login dengan akun GitHub
  • ✓ Satu klik, langsung jadi
  • ✓ Fitur favorit pengguna modern
auth_oauth.js
// Login dengan Google await supabase.auth.signInWithOAuth({ provider: 'google' }) // Login dengan GitHub await supabase.auth.signInWithOAuth({ provider: 'github' })
Halaman 12
BAB 10 · BAGIAN 8

Penyimpanan File (Storage)

🎯 Tujuan: Siswa mampu menjelaskan konsep bucket, folder, dan perbedaan Public vs Private file.

Supabase Storage adalah layanan untuk menyimpan dan mengelola file — seperti gambar profil, foto produk, dokumen, atau file apapun yang dibutuhkan aplikasi kamu. Konsepnya mirip dengan Google Drive: file disimpan dalam bucket (folder utama), yang bisa diatur aksesnya — Public (bisa diakses siapa saja via URL) atau Private (hanya bisa diakses oleh pengguna tertentu setelah login). Kamu juga bisa membuat Signed URL untuk memberikan akses sementara ke file private.

☁️ ANALOGI: Google Drive Pribadi

☁️ Supabase Cloud 📁 profiles 📁 products 📁 documents
🔓 Public Bucket

Siapa saja bisa lihat file di bucket ini via URL publik

🔒 Private Bucket

File hanya bisa diakses user yang sudah login dan memiliki izin

Halaman 13
BAB 10 · BAGIAN 8

Upload File & Signed URL

Proses upload file ke Supabase Storage sangat sederhana. Pertama, kamu panggil fungsi upload() dengan menentukan bucket tujuan dan file yang akan diupload. Setelah file terupload, kamu bisa mendapatkan URL publik untuk mengakses file tersebut. Untuk file di bucket private, kamu perlu membuat Signed URL — yaitu URL yang hanya berlaku sementara (misalnya 1 jam) sehingga tetap aman. Signed URL cocok untuk konten eksklusif seperti dokumen pribadi, foto yang belum dipublikasi, atau akses terbatas.

Upload File Storage Signed URL Tampilkan
storage_upload.js
// Upload file ke bucket 'products' const { data, error } = await supabase.storage .from('products') .upload('foto-produk.jpg', file) // Dapatkan URL publik const { data: { publicUrl } } = supabase.storage .from('products') .getPublicUrl('foto-produk.jpg') // Signed URL (file private, berlaku 1 jam) const { data: { signedUrl } } = await supabase.storage .from('documents') .createSignedUrl('rahasia.pdf', 3600)
Halaman 14
BAB 10 · BAGIAN 9

Realtime — Data Instan

🎯 Tujuan: Siswa mampu membedakan Realtime, Polling, dan Webhook serta menjelaskan kapan menggunakan Realtime.

Realtime adalah fitur yang memungkinkan data di aplikasi kamu diperbarui secara langsung tanpa perlu me-refresh halaman. Cara kerjanya: Supabase membuka koneksi WebSocket antara server dan semua klien. Ketika ada perubahan di database (misalnya user menambah data baru), Supabase langsung broadcast perubahan tersebut ke semua klien yang terhubung. Berbeda dengan Polling (request berulang setiap beberapa detik) yang boros resource, Realtime hanya mengirim data ketika benar-benar ada perubahan. Fitur ini sangat penting untuk aplikasi chat, dashboard monitoring, dan aplikasi kolaboratif.

📡 ANALOGI: Walkie-Talkie vs Surat

Realtime Realtime ⚡ INSTAN — bicara langsung ⚡ Surat (lambat)

📡

Realtime

Push instan

🔄

Polling

Request tiap 5 detik

🔗

Webhook

Notifikasi event

Halaman 15
BAB 10 · BAGIAN 9

Realtime — Chat & Dashboard

Contoh paling nyata penggunaan Realtime adalah aplikasi chat dan dashboard monitoring. Ketika User A mengirim pesan, data pesan disimpan ke database. Supabase Realtime mendeteksi perubahan ini dan langsung mengirimkannya ke User B, User C, dan semua user lain yang sedang online. Alur ini terjadi dalam hitungan milidetik — tanpa perlu manual refresh. Ini berbeda dengan pendekatan polling yang harus request setiap beberapa detik.

User A Supabase Realtime Database perubahan! User B User C User D
realtime.js
// Subscribe ke perubahan database const channel = supabase.channel('realtime-chat') channel.on('postgres_changes', { event: 'INSERT', schema: 'public', table: 'messages' }, (payload) => { // Langsung tampilkan pesan baru showMessage(payload.new) } ).subscribe()
Halaman 16
BAB 10 · BAGIAN 10

Laravel + Supabase

🎯 Tujuan: Siswa mampu menjelaskan cara Laravel terhubung ke Supabase dan kapan menggunakan kombinasi ini.

Laravel sebagai framework backend PHP bisa dengan mudah diintegrasikan dengan Supabase. Pola yang umum digunakan adalah Laravel bertindak sebagai backend API yang memproses logika bisnis, sementara Supabase menangani autentikasi dan database. Laravel berkomunikasi dengan Supabase melalui REST API menggunakan HTTP client seperti Guzzle. Untuk autentikasi, Laravel memverifikasi JWT token yang dikeluarkan oleh Supabase. Kombinasi ini cocok untuk aplikasi enterprise yang membutuhkan logika backend yang kompleks namun tetap ingin memanfaatkan kemudahan BaaS.

Laravel Supabase Auth + API PostgreSQL
LaravelController.php
// Controller Laravel untuk mengambil data dari Supabase use GuzzleHttp\Client; class ProductController extends Controller { public function index() { $http = new Client(); $res = $http->get( 'https://xyz.supabase.co/rest/v1/products', ['headers' => [ 'apikey' => env('SUPABASE_KEY'), 'Authorization' => 'Bearer '.env('SUPABASE_KEY') ]] ); return json_decode($res->getBody()); } }
Halaman 17
BAB 10 · BAGIAN 10

Flutter + Supabase

Untuk pengembangan mobile, Flutter adalah pilihan yang sangat populer. Supabase menyediakan package resmi supabase_flutter yang membuat integrasi menjadi sangat mudah. Dengan package ini, kamu bisa langsung memanggil fungsi autentikasi, query database, upload file, dan subscribe realtime — semuanya dari sisi Flutter. Alur yang terjadi: Flutter App → Supabase SDK → REST/WebSocket → Supabase Services. Pendekatan ini menghilangkan kebutuhan untuk memiliki backend server sendiri — Flutter bisa langsung terhubung ke Supabase.

📱 Package

supabase_flutter

Official Supabase SDK untuk Flutter

✨ Kemampuan

  • ✓ Auth (OTP/OAuth/Email)
  • ✓ CRUD Database
  • ✓ Upload File Storage
  • ✓ Subscribe Realtime
main.dart
import 'package:supabase_flutter/supabase_flutter.dart'; // Inisialisasi void main() async { await Supabase.initialize( url: 'https://xyz.supabase.co', anonKey: 'eyJhbGciOiJIUzI1NiIs...', ); runApp(MyApp()); } // Login OTP await supabase.auth.signInWithOtp( email: 'user@mail.com'); // Query database final products = await supabase .from('products').select().execute();
Halaman 18
BAB 10 · BAGIAN 11

Mini Project: Modern Inventory App

🎯 Tujuan: Siswa mampu merancang dan menjelaskan arsitektur aplikasi inventori sederhana menggunakan Supabase.

Modern Inventory App adalah aplikasi manajemen inventori produk yang akan menggabungkan SEMUA komponen Supabase yang sudah dipelajari. Aplikasi ini memiliki fitur: login dengan OTP, CRUD produk (tambah, lihat, edit, hapus), upload gambar produk ke Storage, dan update realtime daftar produk. Proyek ini dirancang untuk memberi kamu pengalaman nyata membangun aplikasi full-stack dengan Supabase sebagai backend utama.

🔐

Login OTP

Autentikasi via email

📝

CRUD Produk

Tambah, lihat, edit, hapus

🖼️

Upload Gambar

Storage bucket

📡

Realtime

Update otomatis

💡 Proyek ini menggabungkan database, auth, storage, dan realtime — semua dalam satu aplikasi!

Halaman 19
BAB 10 · BAGIAN 11

Database Schema Mini Project

Untuk aplikasi inventori, kita membutuhkan setidaknya dua tabel yang saling berelasi. Tabel users untuk menyimpan data pengguna, dan tabel products untuk menyimpan data produk. Relasi antara keduanya adalah one-to-many — satu user bisa memiliki banyak produk (foreign key user_id di tabel products). Perhatikan bahwa kolom user_id di tabel products menggunakan REFERENCES users(id) — ini memastikan bahwa setiap produk selalu terhubung ke user yang valid.

users 🔑 id  : UUID (PK) 📧 email : TEXT 👤 name  : VARCHAR 📅 created_at : TIMESTAMP products 🔑 id  : UUID (PK) 🔗 user_id : UUID (FK) 📦 name  : VARCHAR 💰 price  : NUMERIC 1 — N one-to-many
schema.sql
-- Tabel users: data pengguna CREATE TABLE users ( id UUID PRIMARY KEY, email TEXT UNIQUE NOT NULL, name VARCHAR(100), created_at TIMESTAMP DEFAULT NOW() ); -- Tabel products: data produk (relasi ke users) CREATE TABLE products ( id UUID PRIMARY KEY, user_id UUID REFERENCES users(id), name VARCHAR(200) NOT NULL, price NUMERIC(10,2) );
Halaman 20
BAB 10 · BAGIAN 11

Arsitektur End-to-End Mini Project

Berikut adalah gambaran lengkap alur data pada Modern Inventory App. Aplikasi Flutter akan terhubung ke Supabase melalui SDK bawaan. Auth OTP untuk login, Database PostgreSQL untuk menyimpan data, Storage untuk menyimpan gambar produk, dan Realtime untuk update daftar produk secara otomatis. Perhatikan bahwa Realtime (RT) bertindak sebagai penghubung — ketika ada perubahan data di database, semua perangkat yang terhubung akan langsung mendapat update.

Flutter App Auth 🔐 OTP Database (PostgreSQL) Storage RT Realtime

🔴 OTP Auth  ·  🟢 Database  ·  🟣 Storage  ·  ⚡ Realtime (RT)

Halaman 21
BAB 10 · BAGIAN 12

Rangkuman BAB 10

Selamat! Kamu telah mempelajari seluruh komponen utama Supabase — dari konsep dasar, database PostgreSQL, autentikasi, penyimpanan file, realtime, hingga integrasi dengan Laravel dan Flutter. Berikut ringkasan poin-poin penting yang harus kamu ingat:

🗄️

PostgreSQL

Database relasional yang handal dengan SQL

🔐

Authentication

Email, OTP, Magic Link, OAuth — 5 metode pilihan

☁️

Storage

Simpan file di bucket Public atau Private

📡

Realtime

Update data secara instan ke semua pengguna

💻

Integrasi

Laravel & Flutter dengan Supabase SDK

🚀

Open Source

Gratis, transparan, dan portable

Halaman 22
LATIHAN SOAL

🧠 Latihan Soal Bab 10

Uji pemahamanmu dengan menjawab 5 soal berikut! ⭐

Halaman 23
LATIHAN SOAL

✏️ Latihan — Lengkapi Flowchart

Identifikasi setiap komponen dalam arsitektur Supabase berikut!

Client/App API Gateway Database Realtime
Halaman 24
TUGAS MANDIRI

📋 Tugas Akhir Bab 10

Petunjuk lengkap — Kerjakan dengan rapi!

✅ Tugas 1: Setup Akun Supabase

Buat akun di supabase.com (gratis). Screenshoot halaman dashboard setelah membuat proyek pertama. Pastikan Project URL dan API Key terlihat jelas di screenshot.

✅ Tugas 2: Rancang Database Schema

Buat skema tabel untuk Modern Inventory App minimal 2 tabel (users dan products) dengan relasi foreign key. Tentukan tipe data yang tepat untuk setiap kolom.

✅ Tugas 3: Tulis 5 Query SQL

(1) CREATE TABLE untuk kedua tabel, (2) INSERT 3 data produk, (3) SELECT dengan WHERE, (4) UPDATE 1 data, (5) DELETE 1 data.

✅ Tugas 4: Analisis Metode Auth

Menurutmu, metode autentikasi apa yang paling cocok untuk aplikasi inventori? Jelaskan alasanmu dalam minimal 3 kalimat!

📤 Format Pengumpulan

Screenshot dashboard + file schema.sql + dokumen penjelasan → kumpulkan ke guru kelas.

⏰ Deadline: Sesuai jadwal dari guru kelas

Halaman 25
PENUTUP

Kata Penutup

Selamat! Kamu telah menyelesaikan Bab 10: Supabase Modern Backend.

Kamu sekarang memiliki pemahaman dasar tentang bagaimana membangun backend aplikasi modern menggunakan Supabase. Dengan PostgreSQL, Authentication, Storage, dan Realtime — kamu sudah punya bekal yang cukup untuk mulai membangun aplikasi full-stack nyata.

Jangan berhenti di sini — coba buat proyek kecil-kecilan dan eksplorasi lebih jauh!

"The best way to learn is to build." — Tech Community

📖 Bab selesai 🚀 Lanjut praktik!
Halaman 26
LAMPIRAN

Glosarium Istilah Penting

BaaS
Backend-as-a-Service — layanan backend siap pakai
PostgreSQL
Sistem database relasional open-source yang digunakan Supabase
SQL
Structured Query Language — bahasa untuk mengelola data di database
CRUD
Create, Read, Update, Delete — empat operasi dasar database
JWT
JSON Web Token — token untuk autentikasi pengguna
OTP
One-Time Password — kode sekali pakai untuk login
OAuth
Open Authorization — login menggunakan akun pihak ketiga
WebSocket
Protokol komunikasi dua arah realtime
Bucket
Folder utama di Storage untuk mengelompokkan file
Foreign Key
Kolom yang mereferensi primary key tabel lain (untuk relasi)
🏠 Home